/**
 * Copyright 2016-present, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactInvalidSetStateWarningDevTool
 */

'use strict'

var warning = require('fbjs/lib/warning')

if (process.env.NODE_ENV !== 'production') {
  var processingChildContext = false

  var warnInvalidSetState = function () {
    process.env.NODE_ENV !== 'production'
      ? warning(
          !processingChildContext,
          'setState(...): Cannot call setState() inside getChildContext()'
        )
      : void 0
  }
}

var ReactInvalidSetStateWarningDevTool = {
  onBeginProcessingChildContext: function () {
    processingChildContext = true
  },
  onEndProcessingChildContext: function () {
    processingChildContext = false
  },
  onSetState: function () {
    warnInvalidSetState()
  }
}

module.exports = ReactInvalidSetStateWarningDevTool
